Sharing of access to a storage device

ABSTRACT

A method and system for sharing access to a storage device. Two processing devices are connected to a storage device interface. The processing devices are interconnected to allow communication with regard to access to the storage device interface. Access to the storage device interface is controlled by the first and second processing devices exchanging signals. Embodiments of the invention may be a mobile device configured to play audio files from a memory card connected to the mobile device. A communications link may be established to a remote device for the transfer of data between devices.

TECHNICAL FIELD

The present invention relates to sharing storage devices between morethan one access device. It is particularly related to, but in no waylimited to, sharing one solid state storage device between twoprocessing devices.

BACKGROUND

Mobile devices are commercially available having hardware interfaces forconnection to storage devices. Those storage devices can be used tostore, for example, images or encoded audio data, for access andprocessing by the mobile device.

Mobile devices, for example mobile telephones, comprise a host processorwhich performs a number of tasks, for example managing wirelessconnections, providing a user interface and providing processingcapacity for applications running on the mobile device. The hostprocessor also interfaces with the storage device via an interface toaccess and/or store data on that device.

The host processor performs a number of functions, and is not thereforeoptimised for power consumption when performing any particular task. Forexample, decoding audio files utilising the host processor of a mobiletelephone may drain the battery in a small number of hours.

Digital Signal Processors (DSPs) can be optimised for a specific task,and that optimisation very significantly reduces the power consumptionfor performing that task. The inclusion of a specific DSP for audiodecoding in a mobile device may therefore lead to a significant increasein battery life when playing audio files. However, in order for the DSPto play audio files from a storage device, the DSP must access thatstorage device. During play-back, the host processor will still requireaccess to the storage device and so a means to share the storage devicebetween the two processors is required. If a DSP is utilised forperforming certain tasks in a mobile device, it may also require theability to write data to the storage device to perform its function.

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter.

There is provided a method of sharing access to a storage deviceinterface performed in a mobile device comprising first and secondprocessing devices and the storage device interface, the methodcomprising the steps of transmitting a signal from the second processingdevice to the first processing device indicating that the firstprocessing device may access the storage device interface, on receipt ofthe signal the first processing device accessing the storage deviceinterface, and when the first processing device has completed accessingthe storage device interface, transmitting a signal from the firstprocessing device to the second processing device indicating that thesecond processing device may access the storage device interface.

The method may further comprise the step of transmitting a signal fromthe first processing device to the second processing device indicatingthat the first processing device requires access to the storage deviceinterface.

The first processing device may be a digital signal processor and thesecond processing device may be a host processor.

The storage device interface may be an SD card interface.

The method may be performed during retrieval and playback of an encodedaudio file located on a storage device connected to the storage deviceinterface.

The method may further comprise the step of transmitting a signal fromthe second processing device to the first processing device indicatingthat the storage device interface is not currently available to thefirst processing device.

Accessing may comprise reading data from the storage device interface,and wherein the method may further comprise the step of the firstprocessing device transmitting the read data via a communications linkto a remote device.

Accessing may comprise writing to the storage device interface, andwherein the method may further comprise the step of the first processingdevice receiving data for writing to the storage device interface via acommunications link to a remote device.

The communications link may be established directly between the firstprocessing device and the remote device.

The signal from the second processing device to the first processingdevice indicating that the first processing device may access thestorage device interface may comprise an instruction to the firstprocessing device to read data from the storage device interface andtransmit it via the communications link.

The signal from the second processing device to the first processingdevice indicating that the first processing device may access thestorage device interface may comprise an instruction to the firstprocessing device to receive data via the communications link and towrite that data to the storage device interface.

The method may further comprise transmitting an indication from thesecond processing device to the first processing device of a memorylocation in a storage device connected to the storage device interfacewhich should be accessed by the first processing device.

There is also provided a mobile device, comprising first and secondprocessing devices, a storage device interface connected to the firstand second processing devices, the first and second processing devicesbeing connected to exchange signals to control access to the storagedevice interface.

The first processing device may be a digital signal processor and thesecond processing device may be a host processor.

The storage device interface may be an SD card interface.

The first processing device may be a connectivity device forestablishing a communications link with a remote device.

The first processing device may be configured to read data from thestorage device interface and transmit that data to the remote device viathe communications link.

The first processing device may be configured to receive data via thecommunications link and to write that data to the storage deviceinterface.

An address in a storage device connected to the storage device interfacefor reading or writing may be specified by the second processing device.

The methods described herein may be performed by firmware or software inmachine readable form on a storage medium. The software can be suitablefor execution on a parallel processor or a serial processor such thatthe method steps may be carried out in any suitable order, orsimultaneously.

This acknowledges that firmware and software can be valuable, separatelytradable commodities. It is intended to encompass software, which runson or controls “dumb” or standard hardware, to carry out the desiredfunctions. It is also intended to encompass software which “describes”or defines the configuration of hardware, such as HDL (hardwaredescription language) software, as is used for designing silicon chips,or for configuring universal programmable chips, to carry out desiredfunctions.

The preferred features may be combined as appropriate, as would beapparent to a skilled person, and may be combined with any of theaspects of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the invention will be described, by way of example, withreference to the following drawings, in which:

FIG. 1 is a schematic diagram of an apparatus for providing sharedaccess to a storage device interface;

FIG. 2 is a flow chart of a method of providing shared access to astorage device interface;

FIG. 3 is a schematic diagram of an apparatus for providing sharedaccess to a storage device interface and a communications link to aremote device; and

FIG. 4 is a flow chart of a method of provided access to a storagedevice interface and transmission or reception of data from a remotedevice.

Common reference numerals are used throughout the figures to indicatesimilar features.

DETAILED DESCRIPTION

Embodiments of the present invention are described below by way ofexample only. These examples represent the best ways of putting theinvention into practice that are currently known to the Applicantalthough they are not the only ways in which this could be achieved. Thedescription sets forth the functions of the example and the sequence ofsteps for constructing and operating the example. However, the same orequivalent functions and sequences may be accomplished by differentexamples.

FIG. 1 shows a block diagram of a mobile device 1. A host processor 2and a Digital Signal Processor 4 (DSP) are connected to allowcommunications between those devices. Both the host processor 2 and theDSP 4 are connected to a storage device interface 5. The storage deviceinterface provides access to a storage device 3, for example a removablemass storage device. The host processor 2 and DSP 4 can access datastored on the storage device 3 via the storage device interface and theconnection between the host processor 2 and the DSP 4 allows thosedevices to communicate information with regard to access to the storagedevice 3.

Host processor 2 performs general functions related to the operation ofthe mobile device 1, for example presenting a user interface andaccepting commands from the user via that interface. Mobile device 1 mayallow the user to play audio files located on the storage device 3.Processing of those audio files is performed more efficiently by DSP 4than by the host processor 2. For DSP 4 to be able to process thosefiles, it must access storage device 3 to retrieve the data. During thataccess, the host processor 2 may also require access to the storagedevice 3, for example to retrieve display information on the audio fileson the storage device or to access other data stored on the storagedevice.

FIG. 2 shows a flow chart of a method utilising the system of FIG. 1 forprocessing an audio file stored on the storage device 3 by DSP 4. Atblock 20 the host processor 2 receives instructions from the user toplay a certain audio file. At block 21 the host processor 2 transmitsdetails of the file to be played to the DSP 4 such that the DSP 4 canaccess and process the audio file. In order to indicate the file to beplayed, the host processor 2 may transmit a location in the FileAllocation Table (FAT) relating to the start of the file on the memorydevice.

When the DSP 4 is ready to play the audio file, at block 22 the DSP 4transmits a signal to the host processor indicating that it requiresaccess to the storage device 3. If the host processor 2 is not currentlyaccessing the storage device 3, at block 23 it responds with a signalindicating that the DSP 4 may access the storage device 3. If the hostprocessor 2 is currently accessing the storage device 3 it may transmitno response until it has finished accessing the storage device 3 andthen transmit the signal of block 23. Alternatively, the host processor2 may transmit a signal indicating that it is currently accessing thestorage device and that the DSP 4 should wait.

At block 24, DSP 4 requests the required data from the storage device 3utilising conventional access techniques. The DSP 4 may only requestpart of the file to begin processing, and may then subsequently requestfurther parts as processing progresses through the audio file.

Once DSP 4 has completed its access to the storage device 3, at block 25it transmits a signal to the host processor 2 indicating that it is nolonger accessing the storage device 3. The host processor is then freeto access the storage device when it requires. At block 26 the DSP 4continues to process the audio file and the host processor 2 continuesnormal operation. If no other functions are required by the user, someor all of the host processor 2 may sleep, thus reducing powerconsumption. When DSP 4 requires more of the audio file for processing,the method returns to block 22 and the DSP 4 transmits a signal to thehost processor 2 that it requires access to the storage device 3. Themethod continues around this loop until processing is completed atblocks 27, 28, 29.

As the DSP 4 approaches the end of the audio file, or at the end ofprocessing, it may transmit a signal to the host processor 2 indicatingthis, and requesting instructions (block 28). The host processor 2 mayrespond with details of the next audio file to process or may instructthe DSP 4 to stop processing.

The method of FIG. 2 therefore allows a mobile device 1 to play an audiofile from a storage device 3 using a DSP 4 which is optimised forprocessing audio files, thereby reducing power consumption compared toutilising the host processor 2. The method allows both the hostprocessor 2 and the DSP 4 to access the storage device 3 such that thereis no conflict between the processors and without requiring additionalhardware components to control or mediate access to the storage device.Signals with regard to access to the storage device interface may besent directly between the host and digital signal processor. Inparticular the system may be implemented entirely in software orfirmware.

The transfer rate required for playing an audio file is relatively lowand thus the duty cycle of DSP 4 accesses to the storage device isrelatively low. For example, a high quality MP3 file requires a transferrate of approximately 400 kbps, compared to a transfer rate of up to 160Mbps for Secure Digital (SD) memory card devices. The DSP 4 wouldtherefore only require access to the storage device for less than 1% oftime. Due to this low duty cycle it is unlikely that the host processor2 will require access to the storage devices, while the DSP is accessingit. If both processors do attempt access at the same time the hostprocessor 2 can wait until the DSP 4 has indicated it has finished andthen access the storage device. If the host processor requires morerapid access to the storage device, and cannot wait until the DSP 4 hascompleted its access, then provision may be made for the host processorto indicate to the DSP that it requires access. This could be performedby the host processor 2 transmitting an ‘access required’ signal to theDSP 4, which would cease accessing the storage device 3 and indicate tothe host processor 2 that it could access the storage device 3.

In a variation of the method of FIG. 2, the DSP does not send anindication to the host when it has finished accessing the storagedevice. The system assumes that the DSP has access to the storage deviceuntil the host requests access by sending a signal to the DSP. Such asystem allows the host to sleep for more extended periods as it does notneed to wake to receive the indication of completion from the DSP, butonly needs to wake when it requires access. Other variations of thissignalling are possible, for example the indication of block 25 may beomitted, but the indication at block 28 transmitted.

At the hardware level, when a processor is not accessing the storagedevice, it may tri-state its connections to the storage deviceinterface, such that the communications of the other device are notaffected.

The storage device 3 may be any suitable type of storage device, forexample Mass Storage Devices, SD memory devices or CompactFlash memorydevices.

FIG. 3 shows a schematic diagram of a mobile device 1, comparable tothat shown in FIG. 1. Like reference numerals have been used for likeelements.

Connectivity device 30 is provided for establishing and utilising acommunications link 31 with a remote device 32. The connectivity deviceis connected in the same manner as the DSP 4 in FIG. 1. The connectivitydevice 30 may be, for example, a Bluetooth system, for communicatingwith remote device 32 via a Bluetooth radio link. Alternativelycommunications link 31 could be a wired link with connectivity device 30providing the necessary interface to that link to enable communicationwith the remote device 32. Remote device 32 may be any device that needsto transmit or receive information from the connectivity device. Forexample, it may be a data logging system, an audio output device or afurther storage device.

FIG. 4 shows a flow chart of a method associated with the system of FIG.3.

At block 40 the host processor 2 establishes a communications linkbetween the connectivity device 30 and the remote device 32. At blocks41 and 42 the host processor 2 instructs the remote device 32 andconnectivity device 30 to enter a communications mode for transferringdata between the remote device 32 and the mobile device 1.

At block 43 the host processor 2 transmits information to theconnectivity remote device 32 with regard to the location of data, orthe location at which data will be stored, in storage device 3. Thatlocation information may comprise memory address information, filehandles, directories, or, any suitable information for identifying astorage location in the storage device 3.

At block 44 the host processor 2 assigns access to the storage device 3to the connectivity device 30, as described hereinbefore and inparticular in relation to the method of FIG. 2. The host processor 2then enters a low-power mode at block 45 in which it minimises its powerconsumption.

If data is to be read from the storage device 3 and transferred to theremote device 32, at block 46 the connectivity device reads the datafrom the locations specified in block 43 and transmits it to the remotedevice 32 at block 47. If data is to be received from the remote device32 and stored in storage device 3, the data is received via thecommunications link at block 48 and stored in the location specified inblock 49.

If the data transfers have been completed the host is notified at block491, otherwise the transmission or reception continues. If the transferhas been completed the host may wake and take other action, for examplereleasing the storage device 3 from the connectivity device 30, oroutputting an indication that the transfer has completed.

If during the data transfer the host requires access to the storagedevice 3 (block 492) it transmits a message to the connectivity device30 to cease reading or writing to that storage device (block 493). Theconnectivity device 30 may cease its communications with the remotedevice 32, or may continue using buffered data. The host performs theaccesses it requires with storage device 3 (block 494) before indicatingto the connectivity device 30 that it may resume access (block 495).

This method allows data to be transferred between the storage device 3and the remote device 32, via communications link 31, while the hostprocessor remains in a low-power state as the host is not required toallow access to the storage device.

A number of examples of applications of this method and system aredescribed below.

The remote device 32 may comprise sensors for gathering information. Forexample, the device may be a GPS receiver, Heart Rate Monitor or othermedical device. Bluetooth Low Energy provides a wireless mechanism totransfer the information to the mobile device 1 without consumingsignificant energy. Similarly the method described herein allowsgathered information to be stored to the storage device 3, also using aminimum of power, while retaining the ability for the host processor 2to access and perform processing on that data when required. A low powersystem that can operate for extended periods from a comparably smallpower source, without compromising processing ability, is thereforeprovided.

The remote device 32 may be an output device for outputting audiosignals. For example, it may be a Bluetooth headset. Mobile device 1 maybe a mobile telephone allowing the playback of encoded audio files viathe remote device 32. The connectivity device 30 may include a specificaudio decoding system which can efficiently decode encoded files held onthe storage device 3 for transmission. The system therefore allows thedecoding and playback of audio files without requiring the high powerconsumption host processor to be utilised.

The system and method can be utilised to improve the transfer of largeamounts of data to a mobile device 1. Remote device 32 may be a computersystem storing files for transfer. The communications link isestablished between the computer system 32 and the mobile device 1 usingconnectivity device 30 which facilitates data transfer and storage tothe storage device. Data transfer is initiated by the host processor,but is subsequently handled without the involvement of the host. Thelatency of the host is therefore removed from the system and powerconsumption may be reduced as the host can be placed in a low powermode. The connectivity device 30 may also have access to a memoryallowing the buffering of data prior to storage in the storage devicesince that storage step may be slower than the transfer speed.

The connectivity device may comprise video encoders to efficientlydecode or transcode video data files. The mobile device can thustranscode video files stored on the storage device for transfer via thecommunications link, without requiring processing by the host.

The mobile device referred to above may, for example, be a mobiletelephone. Furthermore the description may be applicable to non-mobiledevices having the features described herein.

The host processor may be an ARM processor and the DSP may be a generalpurpose DSP or a specific DSP for Media Rendering. The use of the termDSP is not intended to restrict the invention to any particular form ofprocessor, but as will be appreciated any processor capable of providingthe required functions could be utilised as the processor referred to asthe DSP in this description.

The mobile device may also comprise other devices to providefunctionality, for example drivers for displays and keyboards, orwireless link (devices) (for example Bluetooth™) Some or all of thesedevices may be combined into multi-function devices. In particular, theDSP and wireless link devices may be combined into a single device, forexample as in the BlueCore™ processor supplied by Cambridge SiliconRadio Ltd.

Implementation of the methods described herein within a mobile devicehaving a combined DSP and wireless link device allows efficientprocessing and transmission of an audio file to a wireless listeningdevice. Since the DSP handles both processing and transmission of audiodata the host processor can sleep for substantial periods, therebyfurther reducing power consumption.

The methods described herein may be performed by hardware basedprograms, for example firmware, in the host processor and DSP, or may beperformed by software based programs loaded on to those devices.

The term ‘processor’ is used herein to refer to any device withprocessing capability such that it can execute instructions. Thoseskilled in the art will realize that such processing capabilities areincorporated into many different devices and therefore the term‘processor’ includes conventional processors, DSPs, microcontrollers andany other family of devices capable of providing the requiredfunctionality.

It will be understood that the benefits and advantages described abovemay relate to one embodiment or may relate to several embodiments. Theembodiments are not limited to those that solve any or all of the statedproblems or those that have any or all of the stated benefits andadvantages.

Any reference to ‘an’ item refers to one or more of those items.

The steps of the methods described herein may be carried out in anysuitable order, or simultaneously where appropriate. Additionally,individual blocks may be deleted from any of the methods withoutdeparting from the spirit and scope of the subject matter describedherein. Aspects of any of the examples described above may be combinedwith aspects of any of the other examples described to form furtherexamples without losing the effect sought.

It will be understood that the above description of a preferredembodiment is given by way of example only and that variousmodifications may be made by those skilled in the art. Although variousembodiments have been described above with a certain degree ofparticularity, or with reference to one or more individual embodiments,those skilled in the art could make numerous alterations to thedisclosed embodiments without departing from the spirit or scope of thisinvention.

The invention claimed is:
 1. A method of sharing access to a storagedevice interface performed in a mobile device comprising first andsecond processing devices and the storage device interface, the methodcomprising the steps of: transmitting a signal from the secondprocessing device to the first processing device indicating that thefirst processing device may access the storage device interface, and onreceipt of the signal the first processing device accessing the storagedevice interface.
 2. A method according to claim 1, further comprisingthe step of when the first processing device has completed accessing thestorage device interface, transmitting a signal from the firstprocessing device to the second processing device indicating that thesecond processing device may access the storage device interface.
 3. Amethod according to claim 1, further comprising the step of transmittinga signal from the first processing device to the second processingdevice indicating that the first processing device requires access tothe storage device interface.
 4. A method according to claim 1, whereinthe first processing device is a digital signal processor.
 5. A methodaccording to claim 1, wherein the second processing device is a hostprocessor.
 6. A method according to claim 1, wherein the method isperformed during retrieval and playback of an encoded audio file locatedon a storage device connected to the storage device interface.
 7. Amethod according to claim 1, further comprising the step of transmittinga signal from the second processing device to the first processingdevice indicating that the storage device interface is not currentlyavailable to the first processing device.
 8. A method according to claim1, wherein accessing comprises reading data from the storage deviceinterface, and wherein the method further comprises the step of thefirst processing device transmitting the read data via a communicationslink to a remote device.
 9. A method according to claim 8, wherein thecommunications link is established directly between the first processingdevice and the remote device.
 10. A method according to claim 9, whereinthe signal from the second processing device to the first processingdevice indicating that the first processing device may access thestorage device interface comprises an instruction to the firstprocessing device to read data from the storage device interface andtransmit it via the communications link.
 11. A method according to claim10, wherein the signal from the second processing device to the firstprocessing device indicating that the first processing device may accessthe storage device interface comprises an instruction to the firstprocessing device to receive data via the communications link and towrite that data to the storage device interface.
 12. A method accordingto claim 1, wherein accessing comprises writing to the storage deviceinterface, and wherein the method further comprises the step of thefirst processing device receiving data for writing to the storage deviceinterface via a communications link to a remote device.
 13. A methodaccording to claim 1, further comprising transmitting an indication fromthe second processing device to the first processing device of a memorylocation in a storage device connected to the storage device interfacewhich should be accessed by the first processing device.